package com.atguigu.init;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

/**
 * @author 张晓
 * @create 2020-12-15 16:46
 */
public class MyWebApplicationInitializer implements WebApplicationInitializer {

    //web容器 会在 启动的时候 去调用onStartup() ServletContext web上下文对象
    //servlet 3.0 版本以后 提出的一个 新规范 SPI
    //你的项目里面 如果有某些类或者某些方法 需要在启动的时候 被tomcat(web容器) 调用的话
    //首先 你在你的项目的根目录META-INF/services/javax.servlet.ServletContainerInitializer 目录下建立一个文件
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {//web 组件: filter servlet listener
        //用java注解的方式 去初始化spring 上下文环境
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        //context.register(AppConfig.class);

        // Create and register the DispatcherServlet
        DispatcherServlet servlet = new DispatcherServlet(context);
        ServletRegistration.Dynamic registration = servletContext.addServlet("app", servlet);
        registration.setLoadOnStartup(1);
        registration.addMapping("/app/*");
    }
}
